package log;

import cn.hutool.core.util.StrUtil;
import entity.enums.HikMsgType;
import global.Global;
import global.InitCache;

import java.time.LocalDateTime;

/**
 * 日志信息
 *
 * @author zhouwz
 * @date 2020/11/25 9:36
 */
public class LogInfo {

    /**
     * 基础日志信息
     *
     * @param s 日志输出内容
     */
    public static void baseInfo(String s) {
        if (Global.TURN_ON_LOG) {
            System.out.println(getPrefix() + s);
        }
    }

    /**
     * 前缀和报文类型
     *
     * @param hikMsgType 报文类型
     */
    public static void threadAndMsg(HikMsgType hikMsgType) {
        if (Global.TURN_ON_LOG) {
            switch (hikMsgType) {
                case REPORT_DEVICE_STATE_REQ_0:
                case REPORT_DEVICE_STATE_REQ_3:
                case REPORT_DEVICE_STATE_REQ_4:
                    System.out.println(getPrefix() + hikMsgType.getMsg() + " " + hikMsgType.getHex() + " _" + InitCache.realtimeStatus);
                    break;
                default:
                    System.out.println(getPrefix() + hikMsgType.getMsg() + " " + hikMsgType.getHex());
            }
        }
    }

    /**
     * 日志前缀
     *
     * @return 日志前缀
     */
    public static String getPrefix() {
        String threadName = StrUtil.brief(StrUtil.fillAfter(Thread.currentThread().getName(), StrUtil.C_DOT, 10), 10);
        return LocalDateTime.now() + "-[" + threadName + "] :";
    }
}
